{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "用于测试函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "精通Python和R语言，熟悉SQL数据库操作，掌握数据可视化工具如Tableau和Power BI，具备良好的统计学基础和数据挖掘能力。\n",
      "王丽\n",
      "[{'基本信息': {'姓名': '王丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangli123@qq.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '校招', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '12k-15k'}, '教育经历': {'专业': '金融学', '学历': '本科'}, '工作经历': '在知名金融公司实习期间，参与了多个数据分析项目，包括市场趋势分析、客户行为分析等，使用Python和R语言进行数据处理和建模。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据可视化工具如Tableau和Power BI，具备良好的统计学基础和数据挖掘能力。', '项目经历': '主导了一个关于股市预测的项目，使用机器学习算法对历史数据进行分析，成功预测了股市的短期走势。', '校内荣誉': '连续三年获得校级奖学金，荣获优秀毕业生称号。', '校内职务': '担任学生会财务部部长，负责管理学生会资金和预算。', '资格证书': '获得CFA一级证书，通过证券从业资格考试。', '个人作品': '开发了一个基于Python的金融数据分析平台，能够实时抓取和处理金融市场数据，提供可视化分析报告。'}, {'基本信息': {'姓名': '胡丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'huli123@qq.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '校招', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '12k-15k'}, '教育经历': {'专业': '金融学', '学历': '本科'}, '工作经历': '在知名金融公司实习期间，参与了多个数据分析项目，包括市场趋势分析、客户行为分析等，使用Python和R语言进行数据处理和建模。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据可视化工具如Tableau和Power BI，具备良好的统计学基础。', '项目经历': '主导了一个关于股票市场预测的项目，使用机器学习算法对历史数据进行分析，成功预测了市场趋势。', '校内荣誉': '获得过校级优秀学生奖学金，参与全国大学生金融建模大赛并获得二等奖。', '校内职务': '担任金融学院学生会副主席，组织多次大型学术交流活动。', '资格证书': '获得CFA一级证书，通过证券从业资格考试。', '个人作品': '个人作品：一个基于Python的金融市场分析报告，一个使用R语言编写的客户细分模型。'}, {'基本信息': {'姓名': '胡丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'huli123@qq.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '校招', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '10k-15k'}, '教育经历': {'专业': '金融学', '学历': '本科'}, '工作经历': '在知名金融公司实习，参与了多个数据分析项目，包括一个基于Python的金融市场数据分析项目，一个基于R语言的信用评分模型开发项目。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据可视化工具如Tableau和Power BI，具备扎实的统计学和计量经济学基础。', '项目经历': '参与了多个数据分析项目，包括一个基于Python的金融市场数据分析项目，一个基于R语言的信用评分模型开发项目。', '校内荣誉': '获得过校级优秀学生奖学金，全国大学生金融建模竞赛二等奖。', '校内职务': '担任学生会财务部部长。', '资格证书': '获得CFA一级证书，证券从业资格证书。', '个人作品': '个人作品：一个基于Python的金融市场数据分析项目，一个基于R语言的信用评分模型开发项目。'}, {'基本信息': {'姓名': '王丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangli123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括市场趋势分析、客户行为分析等。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据挖掘和机器学习算法，熟练使用Excel和Tableau进行数据可视化。', '项目经历': '参与了多个数据分析项目，包括市场趋势分析、客户行为分析等。', '校内荣誉': '获得过校级优秀学生奖学金。', '校内职务': '担任数学建模协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的市场趋势分析项目，一个基于R语言的客户行为分析项目。'}, {'基本信息': {'姓名': '王五', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangwu123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括一个基于Python的金融市场数据分析，一个基于R的信用风险评估模型开发。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据可视化工具如Tableau和Matplotlib，了解机器学习算法和统计分析方法。', '项目经历': '参与了多个数据分析项目，包括一个基于Python的金融市场数据分析，一个基于R的信用风险评估模型开发。', '校内荣誉': '获得过校级优秀学生奖学金，数学建模竞赛二等奖。', '校内职务': '担任数学建模协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的金融市场数据分析，一个基于R的信用风险评估模型开发。'}, {'基本信息': {'姓名': '王五', '性别': '女', '年龄': '22', '电话': '13800138000', '邮箱': 'wangwu123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，熟练使用Tableau和Power BI进行数据可视化，了解机器学习算法和统计分析方法。', '项目经历': '参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '校内荣誉': '获得过校级优秀学生奖学金，全国大学生数学竞赛二等奖。', '校内职务': '担任数学建模协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的数据分析项目，一个使用Tableau的数据可视化项目。'}, {'基本信息': {'姓名': '王丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangli123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括市场趋势分析、客户行为分析和风险评估模型开发。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据清洗、数据可视化技术，了解机器学习算法。', '项目经历': '参与了多个数据分析项目，包括市场趋势分析、客户行为分析和风险评估模型开发。', '校内荣誉': '获得过校级优秀学生奖学金。', '校内职务': '担任数学建模协会副会长。', '资格证书': '获得过全国大学生数学竞赛二等奖。', '个人作品': '个人作品：一个基于Python的市场趋势分析项目，一个基于R语言的客户行为分析项目。'}, {'基本信息': {'姓名': '王丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangli123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习期间，参与了多个数据分析项目，包括使用Python进行数据清洗和分析，以及使用R语言进行统计建模。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据可视化工具如Tableau和Matplotlib，了解机器学习算法。', '项目经历': '参与了多个数据分析项目，包括使用Python进行数据清洗和分析，以及使用R语言进行统计建模。', '校内荣誉': '获得过校级优秀学生奖学金，数学建模竞赛二等奖。', '校内职务': '担任数学协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的数据分析项目，一个使用R语言的统计建模项目。'}, {'基本信息': {'姓名': '王五', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangwu123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括一个基于Python的金融市场数据分析项目，一个基于R语言的信用评分模型开发项目。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据清洗、数据可视化、统计分析等技能，熟悉机器学习算法如线性回归、决策树、随机森林等。', '项目经历': '参与了多个数据分析项目，包括一个基于Python的金融市场数据分析项目，一个基于R语言的信用评分模型开发项目。', '校内荣誉': '获得过校级优秀学生奖学金，数学建模竞赛二等奖。', '校内职务': '担任数学建模协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的金融市场数据分析项目，一个基于R语言的信用评分模型开发项目。'}, {'基本信息': {'姓名': '王丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangli123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，熟练使用Tableau和Power BI进行数据可视化，具备良好的统计学基础。', '项目经历': '参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '校内荣誉': '获得过校级优秀学生奖学金。', '校内职务': '担任数学建模协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的数据分析项目，一个使用Tableau进行数据可视化的项目。'}, {'基本信息': {'姓名': '王丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangli123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，熟练使用Tableau和Power BI进行数据可视化，了解机器学习算法和统计分析方法。', '项目经历': '参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '校内荣誉': '获得过校级优秀学生奖学金，数学建模竞赛二等奖。', '校内职务': '担任数学建模协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的数据分析项目，一个使用Tableau进行的数据可视化项目。'}, {'基本信息': {'姓名': '王丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangli123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括市场趋势分析、客户行为分析以及风险评估模型的构建。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据可视化工具如Tableau和Power BI，了解机器学习算法及其应用。', '项目经历': '参与了多个数据分析项目，包括市场趋势分析、客户行为分析以及风险评估模型的构建。', '校内荣誉': '获得过校级数学竞赛一等奖，连续三年获得优秀学生奖学金。', '校内职务': '担任数学协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的市场趋势分析项目，一个使用R语言构建的客户行为分析模型。'}, {'基本信息': {'姓名': '王丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangli123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括市场趋势分析、客户行为分析和风险评估模型构建。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据清洗、数据可视化技术，熟练使用Pandas、NumPy、Matplotlib、Seaborn等数据分析工具。', '项目经历': '参与了多个数据分析项目，包括市场趋势分析、客户行为分析和风险评估模型构建。', '校内荣誉': '获得过校级优秀学生奖学金，数学建模竞赛二等奖。', '校内职务': '担任数学协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的市场趋势分析项目，一个基于R语言的客户行为分析项目。'}, {'基本信息': {'姓名': '王丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangli123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，熟练使用Tableau和Power BI进行数据可视化，了解机器学习算法和统计分析方法。', '项目经历': '参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '校内荣誉': '获得过校级数学竞赛一等奖，获得过优秀学生奖学金。', '校内职务': '担任数学协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的数据分析项目，一个基于Tableau的数据可视化项目。'}, {'基本信息': {'姓名': '王五', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangwu123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，熟练使用Tableau和Power BI进行数据可视化，了解机器学习算法和统计分析方法。', '项目经历': '参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '校内荣誉': '获得过校级优秀学生奖学金，数学建模竞赛二等奖。', '校内职务': '担任数学协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的数据分析项目，一个使用Tableau的数据可视化项目。'}, {'基本信息': {'姓名': '王伟', '性别': '男', '年龄': '22', '电话': '13812345678', '邮箱': 'wangwei123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括一个基于Python的金融市场数据分析，一个基于R语言的信用评分模型开发。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据清洗、数据可视化技术，了解机器学习算法如线性回归、决策树等。', '项目经历': '参与了多个数据分析项目，包括一个基于Python的金融市场数据分析，一个基于R语言的信用评分模型开发。', '校内荣誉': '获得过校级数学竞赛一等奖。', '校内职务': '担任数学协会副会长。', '资格证书': '获得过全国大学生数学竞赛二等奖。', '个人作品': '个人作品：一个基于Python的金融市场数据分析，一个基于R语言的信用评分模型开发。'}, {'基本信息': {'姓名': '王丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangli123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括一个基于Python的金融市场数据分析，一个基于R语言的信用评分模型开发。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据清洗、数据可视化、机器学习算法等数据分析技能，熟练使用Pandas、NumPy、Matplotlib、Scikit-learn等工具。', '项目经历': '参与了多个数据分析项目，包括一个基于Python的金融市场数据分析，一个基于R语言的信用评分模型开发。', '校内荣誉': '获得过校级优秀学生奖学金，全国大学生数学竞赛二等奖。', '校内职务': '担任数学建模协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的金融市场数据分析，一个基于R语言的信用评分模型开发。'}, {'基本信息': {'姓名': '王丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangli123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括市场趋势分析、客户行为分析等，使用Python和R进行数据处理和建模。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据清洗、数据可视化技术，了解机器学习算法，熟练使用Excel和Tableau进行数据分析。', '项目经历': '参与了多个数据分析项目，包括市场趋势分析、客户行为分析等，使用Python和R进行数据处理和建模。', '校内荣誉': '获得过校级数学竞赛一等奖，多次获得优秀学生奖学金。', '校内职务': '担任数学建模协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的市场趋势分析项目，一个基于R的客户行为分析项目。'}, {'基本信息': {'姓名': '王丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangli123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，熟练使用Tableau和Power BI进行数据可视化，掌握统计学和机器学习基础知识。', '项目经历': '参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '校内荣誉': '获得过校级优秀学生奖学金。', '校内职务': '担任数学建模协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的数据分析项目，一个使用Tableau进行数据可视化的项目。'}, {'基本信息': {'姓名': '王丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangli123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习期间，参与了多个数据分析项目，包括使用Python进行数据清洗和分析，以及使用R语言进行统计建模。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据可视化工具如Tableau和Matplotlib，具备良好的统计学基础。', '项目经历': '参与了一个金融市场趋势分析项目，负责数据收集、清洗和分析，最终通过数据可视化展示了市场趋势。', '校内荣誉': '获得过校级优秀学生奖学金，数学建模竞赛二等奖。', '校内职务': '担任数学协会副会长。', '资格证书': '获得过全国大学生数学竞赛三等奖。', '个人作品': '个人作品：一个基于Python的金融市场数据分析项目，一个使用R语言进行的统计建模项目。'}, {'基本信息': {'姓名': '王丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangli123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括使用Python进行数据清洗和统计分析，使用R语言进行数据可视化，以及使用SQL进行数据库查询和管理。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据清洗、统计分析和数据可视化技术，了解机器学习基础算法。', '项目经历': '参与了多个数据分析项目，包括使用Python进行数据清洗和统计分析，使用R语言进行数据可视化，以及使用SQL进行数据库查询和管理。', '校内荣誉': '获得过校级优秀学生奖学金，数学建模竞赛二等奖。', '校内职务': '担任数学协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的数据分析项目，一个基于R语言的数据可视化项目，一个基于SQL的数据库管理项目。'}, {'基本信息': {'姓名': '王伟', '性别': '男', '年龄': '22', '电话': '13812345678', '邮箱': 'wangwei123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用R语言进行统计建模，以及使用Tableau进行数据可视化。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，熟练使用Tableau和Power BI进行数据可视化，具备良好的统计学基础，能够进行回归分析、时间序列分析等。', '项目经历': '参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用R语言进行统计建模，以及使用Tableau进行数据可视化。', '校内荣誉': '获得过校级优秀学生奖学金，全国大学生数学竞赛二等奖。', '校内职务': '担任数学建模协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的金融数据分析项目，一个基于R语言的统计建模项目，一个基于Tableau的数据可视化项目。'}, {'基本信息': {'姓名': '王五', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangwu123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，熟练使用Tableau和Power BI进行数据可视化，具备良好的统计学基础和数据建模能力。', '项目经历': '参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '校内荣誉': '获得过校级优秀学生奖学金，全国大学生数学竞赛二等奖。', '校内职务': '担任数学建模协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的数据分析项目，一个使用Tableau进行数据可视化的项目。'}, {'基本信息': {'姓名': '王伟', '性别': '男', '年龄': '22', '电话': '13812345678', '邮箱': 'wangwei123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括市场趋势分析、客户行为分析和风险评估模型开发。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据挖掘和机器学习算法，熟练使用Excel和Tableau进行数据可视化。', '项目经历': '参与了多个数据分析项目，包括市场趋势分析、客户行为分析和风险评估模型开发。', '校内荣誉': '获得过校级优秀学生奖学金，数学建模竞赛二等奖。', '校内职务': '担任数学协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的市场趋势分析项目，一个使用R语言开发的客户行为分析模型。'}, {'基本信息': {'姓名': '王丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangli123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，熟练使用Tableau和Power BI进行数据可视化，掌握基本的统计学知识和机器学习算法。', '项目经历': '参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '校内荣誉': '获得过校级优秀学生奖学金，数学建模竞赛二等奖。', '校内职务': '担任数学系学生会副主席。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的数据分析项目，一个使用Tableau进行数据可视化的项目。'}, {'基本信息': {'姓名': '王丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangli123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，熟练使用Tableau和Power BI进行数据可视化，具备良好的统计学基础。', '项目经历': '参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '校内荣誉': '获得过校级优秀学生奖学金，全国大学生数学竞赛二等奖。', '校内职务': '担任数学建模协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的数据分析项目，一个使用Tableau进行数据可视化的项目。'}, {'基本信息': {'姓名': '王丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangli123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括市场趋势分析、客户行为分析等。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据清洗、数据可视化技术，了解机器学习算法。', '项目经历': '参与了多个数据分析项目，包括市场趋势分析、客户行为分析等，使用Python进行数据处理和分析。', '校内荣誉': '获得过校级优秀学生奖学金，数学建模竞赛二等奖。', '校内职务': '担任数学协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的市场趋势分析项目，一个使用R语言的客户行为分析报告。'}, {'基本信息': {'姓名': '王五', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangwu123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括一个基于Python的金融市场数据分析，一个基于R的信用风险评估模型开发。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据清洗、数据可视化、统计分析等技能，熟悉机器学习算法如线性回归、决策树、随机森林等。', '项目经历': '参与了多个数据分析项目，包括一个基于Python的金融市场数据分析，一个基于R的信用风险评估模型开发。', '校内荣誉': '获得过校级优秀学生称号，获得过数学建模竞赛二等奖。', '校内职务': '担任数学协会副会长。', '资格证书': '获得过全国大学生数学竞赛二等奖。', '个人作品': '个人作品：一个基于Python的金融市场数据分析，一个基于R的信用风险评估模型开发。'}, {'基本信息': {'姓名': '王五', '性别': '女', '年龄': '22', '电话': '18812345678', '邮箱': 'wangwu123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，熟练使用Tableau和Power BI进行数据可视化，具备良好的统计学基础和数据建模能力。', '项目经历': '参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '校内荣誉': '获得过校级优秀学生奖学金，全国大学生数学竞赛二等奖。', '校内职务': '担任数学建模协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的数据分析项目，一个使用Tableau进行数据可视化的项目。'}, {'基本信息': {'姓名': '王丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangli123@qq.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括市场趋势分析、客户行为分析等。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据挖掘和机器学习算法，熟练使用Excel和Tableau进行数据可视化。', '项目经历': '参与了多个数据分析项目，包括市场趋势分析、客户行为分析等。', '校内荣誉': '获得过校级优秀学生奖学金。', '校内职务': '担任数学协会副会长。', '资格证书': '获得过全国大学生数学竞赛二等奖。', '个人作品': '个人作品：一个基于Python的市场趋势分析项目，一个基于R语言的客户行为分析项目。'}, {'基本信息': {'姓名': '王伟', '性别': '男', '年龄': '22', '电话': '13812345678', '邮箱': 'wangwei123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括市场趋势分析、客户行为分析等。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据可视化工具如Tableau和Power BI，了解机器学习算法。', '项目经历': '参与了多个数据分析项目，包括市场趋势分析、客户行为分析等。', '校内荣誉': '获得过校级优秀学生奖学金。', '校内职务': '担任数学建模协会会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的市场趋势分析项目，一个基于R语言的客户行为分析项目。'}, {'基本信息': {'姓名': '王五', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangwu123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括一个基于Python的数据清洗和可视化项目，一个基于R语言的统计分析项目，以及一个使用SQL进行数据查询和优化的项目。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，掌握数据清洗、数据可视化和统计分析的基本方法，熟悉常用的机器学习算法，如线性回归、决策树和聚类分析。', '项目经历': '参与了多个数据分析项目，包括一个基于Python的数据清洗和可视化项目，一个基于R语言的统计分析项目，以及一个使用SQL进行数据查询和优化的项目。', '校内荣誉': '获得过校级优秀学生奖学金，全国大学生数学竞赛二等奖。', '校内职务': '担任数学建模协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的数据清洗和可视化项目，一个基于R语言的统计分析项目，以及一个使用SQL进行数据查询和优化的项目。'}, {'基本信息': {'姓名': '王丽', '性别': '女', '年龄': '22', '电话': '13812345678', '邮箱': 'wangli123@gmail.com', '籍贯': '江苏省南京市'}, '意向岗位': {'类型': '实习', '城市': '上海', '职位': '数据分析师', '行业': '金融业', '薪资': '3k-5k'}, '教育经历': {'专业': '数学', '学历': '本科'}, '工作经历': '在金融公司实习，参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '专业技能': '精通Python和R语言，熟悉SQL数据库操作，熟练使用Excel和Tableau进行数据分析和可视化，了解机器学习基础算法。', '项目经历': '参与了多个数据分析项目，包括使用Python进行数据清洗和分析，使用SQL进行数据库查询，以及使用Tableau进行数据可视化。', '校内荣誉': '获得过校级优秀学生奖学金，数学建模竞赛二等奖。', '校内职务': '担任数学协会副会长。', '资格证书': '获得过全国大学生数学建模竞赛二等奖。', '个人作品': '个人作品：一个基于Python的数据分析项目，一个使用Tableau的数据可视化项目。'}, {'基本信息': {'性别': '男', '年龄': '21', '电话': '18929310862', '邮箱': 'pengxiaojiang@sztu.edu.cn', '籍贯': '广东省肇庆市'}, '意向岗位': {'类型': '实习', '城市': '深圳', '职位': '嵌入式软件开发', '行业': '信息传输、软件和信息技术服务业', '薪资': '4k-6k'}, '教育经历': {'专业': '自动化', '学历': '本科'}, '工作经历': '我曾在深圳的一家软件公司实习，参与了多个项目，包括一个基于Python的Web应用开发，一个基于React的移动端应用开发，一个基于Java的微服务架构设计。', '专业技能': '编程:热练掌握C、C++、Python编程语言，熟悉汇编语言;嵌入式:热练STM32 单片机项目开发，包括使用CubeMX，Keil环境开发，FreeRTOS编程:熟悉SPI、I2C、USB、UART接口协议:熟悉机器视觉OpenCV:软件:熟练使用Matlab、Labview编程，熟悉COMSOL Multiphysics建模;', '项目经历': '参与了多个项目，包括一个基于Python的Web应用开发，一个基于React的移动端应用开发，一个基于Java的微服务架构设计。', '校内荣誉': '获得过优秀学生干部称号，获得过优秀学生奖学金。', '校内职务': '担任过班级班长和团支部书记。', '资格证书': '获得过全国大学生数学建模竞赛一等奖。', '个人作品': '个人作品：一个基于Python的Web应用开发，一个基于React的移动端应用开发，一个基于Java的微服务架构设计。'}, {'基本信息': {'性别': '男', '年龄': '21', '电话': '18929310862', '邮箱': 'pengxiaojiang@sztu.edu.cn', '籍贯': '广东省肇庆市'}, '意向岗位': {'类型': '实习', '城市': '深圳', '职位': '全栈工程师', '行业': '制造业', '薪资': '1k-2k'}, '教育经历': {'专业': '自动化', '学历': '本科'}, '工作经历': '在实验所实习，参与了多个项目，包括一个数电模电的实验，一个信号与系统的实验，一个自动化的实验。', '专业技能': '精通嵌入式程序编写和硬件设计，精通数电模电以及信号与系统的专业知识，熟悉C语言，multisim,MATLAB,Altium designer, labview和comsol,labview，和立创eda软件，非常熟悉stm32的使用，会使用PythonopenCV.', '项目经历': '参与了多个项目，包括一个数电模电的实验，一个信号与系统的实验，一个自动化的实验。', '校内荣誉': '获得过优秀学生干部称号，获得过优秀学生奖学金。', '校内职务': '担任过团支部书记。', '资格证书': '无', '个人作品': '无'}]\n"
     ]
    }
   ],
   "source": [
    "import json \n",
    "def load_resume_data(file_path: str):\n",
    "    \"\"\"加载简历JSON数据文件\"\"\"\n",
    "    with open(file_path, 'r', encoding='utf-8') as f:\n",
    "        return json.load(f)\n",
    "# 加载简历数据\n",
    "resume = load_resume_data(\"../data/generated_resumes.json\")\n",
    "\n",
    "# 访问第一份简历的姓名\n",
    "first_resume_name = resume[0][\"基本信息\"][\"姓名\"]\n",
    "\n",
    "# 访问第一份简历的专业技能\n",
    "first_resume_skills = resume[0][\"专业技能\"]\n",
    "print(first_resume_skills)\n",
    "print(first_resume_name)\n",
    "print(resume)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "        专业技能：精通Python和R语言，熟悉SQL数据库操作，掌握数据可视化工具如Tableau和Power BI，具备良好的统计学基础和数据挖掘能力。\n",
      "        工作经历：在知名金融公司实习期间，参与了多个数据分析项目，包括市场趋势分析、客户行为分析等，使用Python和R语言进行数据处理和建模。\n",
      "        项目经历：主导了一个关于股市预测的项目，使用机器学习算法对历史数据进行分析，成功预测了股市的短期走势。\n",
      "        教育经历：金融学 本科\n",
      "        期望职位：数据分析师\n",
      "        期望行业：金融业\n",
      "        期望薪资：12k-15k\n",
      "        \n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "'输入的resume字典：\\n{\\n    \"专业技能\": \"精通Python和R语言...\",\\n    \"工作经历\": \"在金融公司实习...\",\\n    \"项目经历\": \"参与了多个数据分析项目...\",\\n    \"教育经历\": {\\n        \"专业\": \"数学\",\\n        \"学历\": \"本科\"\\n    },\\n    \"意向岗位\": {\\n        \"职位\": \"数据分析师\",\\n        \"行业\": \"金融业\",\\n        \"薪资\": \"3k-5k\"\\n    }\\n}\\n\\n输出的格式化文本：\\n专业技能：精通Python和R语言...\\n工作经历：在金融公司实习...\\n项目经历：参与了多个数据分析项目...\\n教育经历：数学 本科\\n期望职位：数据分析师\\n期望行业：金融业\\n期望薪资：3k-5k\\n# 从简历数据中提取文本信息'"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from resume_matcher import ResumeJobMatcher  # 导入简历匹配器\n",
    "from typing import List, Dict, Tuple  # 导入类型提示\n",
    "\n",
    "\n",
    "def _format_resume( resume: Dict) -> str:\n",
    "        \"\"\"\n",
    "        将简历信息格式化为文本字符串，用于与职位进行匹配\n",
    "        :param resume: 简历信息字典\n",
    "        :return: 格式化后的文本字符串\n",
    "        \"\"\"\n",
    "        text = f\"\"\"\n",
    "        专业技能：{resume['专业技能']}\n",
    "        工作经历：{resume['工作经历']}\n",
    "        项目经历：{resume['项目经历']}\n",
    "        教育经历：{resume['教育经历']['专业']} {resume['教育经历']['学历']}\n",
    "        期望职位：{resume['意向岗位']['职位']}\n",
    "        期望行业：{resume['意向岗位']['行业']}\n",
    "        期望薪资：{resume['意向岗位']['薪资']}\n",
    "        \"\"\"\n",
    "        return text\n",
    "\n",
    "print(_format_resume(resume[0]))\n",
    "\n",
    "# #函数定义：\n",
    "\n",
    "# _format_resume 是一个类方法（因为有self参数）\n",
    "# 它接收一个resume参数，这是一个包含简历信息的字典\n",
    "# 返回类型是字符串（-> str）\n",
    "# 字符串格式化：\n",
    "\n",
    "# 使用了 f-string（格式化字符串字面值）语法，以 f\"\"\"...\"\"\" 的形式\n",
    "# 包含多行文本，保持了良好的格式排版\n",
    "# 数据访问：\n",
    "\n",
    "# resume['专业技能'] - 直接访问一级字段\n",
    "# resume['教育经历']['专业'] - 访问嵌套字段\n",
    "# resume['意向岗位']['职位'] - 访问嵌套字段\n",
    "'''输入的resume字典：\n",
    "{\n",
    "    \"专业技能\": \"精通Python和R语言...\",\n",
    "    \"工作经历\": \"在金融公司实习...\",\n",
    "    \"项目经历\": \"参与了多个数据分析项目...\",\n",
    "    \"教育经历\": {\n",
    "        \"专业\": \"数学\",\n",
    "        \"学历\": \"本科\"\n",
    "    },\n",
    "    \"意向岗位\": {\n",
    "        \"职位\": \"数据分析师\",\n",
    "        \"行业\": \"金融业\",\n",
    "        \"薪资\": \"3k-5k\"\n",
    "    }\n",
    "}\n",
    "\n",
    "输出的格式化文本：\n",
    "专业技能：精通Python和R语言...\n",
    "工作经历：在金融公司实习...\n",
    "项目经历：参与了多个数据分析项目...\n",
    "教育经历：数学 本科\n",
    "期望职位：数据分析师\n",
    "期望行业：金融业\n",
    "期望薪资：3k-5k\n",
    "# 从简历数据中提取文本信息'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              单位名称    岗位名称 工作性质     职位分类 工作城市  需求专业   学历要求  \\\n",
      "0  深圳市柏威国际科技物流有限公司  涉外法务助理   全职     法务助理  深圳市    法学  本科及以上   \n",
      "1  深圳市柏威国际科技物流有限公司  涉外财务助理   全职       财务  深圳市   会计学  本科及以上   \n",
      "2  深圳市柏威国际科技物流有限公司   空海外客服   全职  物流专员/助理  深圳市  市场营销  本科及以上   \n",
      "3  深圳市柏威国际科技物流有限公司   空海外客服   全职  物流专员/助理  深圳市  物流管理  本科及以上   \n",
      "4  深圳市柏威国际科技物流有限公司   空海外客服   全职  物流专员/助理  深圳市  电子商务  本科及以上   \n",
      "\n",
      "                                                岗位职责  \\\n",
      "0  1、负责公司各类合同及法律文件的起草和审核工作；2、代表公司非诉讼法律事务，维护公司合法权益...   \n",
      "1  1、协助海外代理应收款项的对账、按时安排付款等工作；2、协助与各分子公司对账,核对往来等;3...   \n",
      "2  1、与航空公司或同行定舱并确认仓位信息，及时将仓位信息反馈给客户和国外代理；2、负责及时安排...   \n",
      "3  1、与航空公司或同行定舱并确认仓位信息，及时将仓位信息反馈给客户和国外代理；2、负责及时安排...   \n",
      "4  1、与航空公司或同行定舱并确认仓位信息，及时将仓位信息反馈给客户和国外代理；2、负责及时安排...   \n",
      "\n",
      "                                                岗位要求  所需人数  最低薪资（K/月）  \\\n",
      "0  1、法学相关专业本科以上学历、英语六级，通过法律职业考试、英语口语流利优先；2、工作踏实细致...     2          6   \n",
      "1  1.财会或相关专业本科以上学历，取得会计初级证书，英语六级、口语流利；2.严谨、细致，逻辑思...     2          6   \n",
      "2  1、本科及以上学历，英语六级、口语流利优先，国贸、物流管理、英语等相关专业优先；2、抗压能力...     5          6   \n",
      "3  1、本科及以上学历，英语六级、口语流利优先，国贸、物流管理、英语等相关专业优先；2、抗压能力...     5          6   \n",
      "4  1、本科及以上学历，英语六级、口语流利优先，国贸、物流管理、英语等相关专业优先；2、抗压能力...     5          6   \n",
      "\n",
      "   最高薪资（K/月）    福利                      职位诱惑                     投递说明  \\\n",
      "0          8  六险一金                       NaN            通过法考、英语口语流利优先   \n",
      "1          8  五险一金                       NaN  前期在国内1-2年学习培养，后期可接受海外外派   \n",
      "2          8  六险一金  绩效奖金 节日礼物 扁平管理 年度旅游 免费班车                     两轮面试   \n",
      "3          8  六险一金  绩效奖金 节日礼物 扁平管理 年度旅游 免费班车                     两轮面试   \n",
      "4          8  六险一金  绩效奖金 节日礼物 扁平管理 年度旅游 免费班车                     两轮面试   \n",
      "\n",
      "                                                职位备注  \n",
      "0  在这里你可以得到：1、不定期的公司活动聚餐，唱K，下午茶、团队旅游；2、带薪休假，节假日福利...  \n",
      "1                                                NaN  \n",
      "2  在这里你可以得到：1、不定期的公司活动聚餐，唱K，下午茶、团队旅游；2、带薪休假，节假日福利...  \n",
      "3  在这里你可以得到：1、不定期的公司活动聚餐，唱K，下午茶、团队旅游；2、带薪休假，节假日福利...  \n",
      "4  在这里你可以得到：1、不定期的公司活动聚餐，唱K，下午茶、团队旅游；2、带薪休假，节假日福利...  \n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "job_data_path=\"../data/SZTU_2025_SPRING_POSITION_TABLE.xlsx\"\n",
    "\n",
    "job_data = pd.read_excel(job_data_path)  # 读取职位数据Excel文件\n",
    "print(job_data.head())  # 打印前5行数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Name: sentence-transformers\n",
      "Version: 2.2.2\n",
      "Summary: Multilingual text embeddings\n",
      "Home-page: https://github.com/UKPLab/sentence-transformers\n",
      "Author: Nils Reimers\n",
      "Author-email: info@nils-reimers.de\n",
      "License: Apache License 2.0\n",
      "Location: c:\\users\\1\\.conda\\envs\\torch\\lib\\site-packages\n",
      "Requires: huggingface-hub, nltk, numpy, scikit-learn, scipy, sentencepiece, torch, torchvision, tqdm, transformers\n",
      "Required-by: \n",
      "Note: you may need to restart the kernel to use updated packages.\n",
      "Looking in indexes: http://mirrors.aliyun.com/pypi/simple\n",
      "Requirement already satisfied: huggingface-hub==0.25.2 in c:\\users\\1\\.conda\\envs\\torch\\lib\\site-packages (0.25.2)\n",
      "Requirement already satisfied: filelock in c:\\users\\1\\.conda\\envs\\torch\\lib\\site-packages (from huggingface-hub==0.25.2) (3.16.1)\n",
      "Requirement already satisfied: fsspec>=2023.5.0 in c:\\users\\1\\.conda\\envs\\torch\\lib\\site-packages (from huggingface-hub==0.25.2) (2024.10.0)\n",
      "Requirement already satisfied: packaging>=20.9 in c:\\users\\1\\.conda\\envs\\torch\\lib\\site-packages (from huggingface-hub==0.25.2) (23.2)\n",
      "Requirement already satisfied: pyyaml>=5.1 in c:\\users\\1\\.conda\\envs\\torch\\lib\\site-packages (from huggingface-hub==0.25.2) (6.0.2)\n",
      "Requirement already satisfied: requests in c:\\users\\1\\.conda\\envs\\torch\\lib\\site-packages (from huggingface-hub==0.25.2) (2.31.0)\n",
      "Requirement already satisfied: tqdm>=4.42.1 in c:\\users\\1\\.conda\\envs\\torch\\lib\\site-packages (from huggingface-hub==0.25.2) (4.67.1)\n",
      "Requirement already satisfied: typing-extensions>=3.7.4.3 in c:\\users\\1\\.conda\\envs\\torch\\lib\\site-packages (from huggingface-hub==0.25.2) (4.12.2)\n",
      "Requirement already satisfied: colorama in c:\\users\\1\\.conda\\envs\\torch\\lib\\site-packages (from tqdm>=4.42.1->huggingface-hub==0.25.2) (0.4.6)\n",
      "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\1\\.conda\\envs\\torch\\lib\\site-packages (from requests->huggingface-hub==0.25.2) (3.4.0)\n",
      "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\1\\.conda\\envs\\torch\\lib\\site-packages (from requests->huggingface-hub==0.25.2) (3.10)\n",
      "Requirement already satisfied: urllib3<3,>=1.21.1 in c:\\users\\1\\.conda\\envs\\torch\\lib\\site-packages (from requests->huggingface-hub==0.25.2) (2.2.3)\n",
      "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\1\\.conda\\envs\\torch\\lib\\site-packages (from requests->huggingface-hub==0.25.2) (2024.8.30)\n",
      "Note: you may need to restart the kernel to use updated packages.\n"
     ]
    }
   ],
   "source": [
    "%pip show sentence-transformers\n",
    "%pip install huggingface-hub==0.25.2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The token has not been saved to the git credentials helper. Pass `add_to_git_credential=True` in this function directly or `--add-to-git-credential` if using via `huggingface-cli` if you want to set the git credential as well.\n",
      "Token is valid (permission: fineGrained).\n",
      "Your token has been saved to C:\\Users\\1\\.cache\\huggingface\\token\n",
      "Login successful\n"
     ]
    }
   ],
   "source": [
    "from langchain_community.embeddings import HuggingFaceEmbeddings  # 导入HuggingFace的文本嵌入模型\n",
    "from huggingface_hub import login  # 导入HuggingFace的登录模块\n",
    "\n",
    "# 登录HuggingFace\n",
    "login(token=\"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\")\n",
    "\n",
    "embeddings = HuggingFaceEmbeddings(\n",
    "            model_name=\"BAAI/bge-large-zh-v1.5\",  # 使用中文预训练模型BAAI/bge-large-zh-v1.5\n",
    "            model_kwargs={'device': 'cuda'}  # 使用GPU加速处理\n",
    "        )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "    公司：深圳市柏威国际科技物流有限公司\n",
      "    职位：涉外法务助理\n",
      "    要求：1、法学相关专业本科以上学历、英语六级，通过法律职业考试、英语口语流利优先；2、工作踏实细致、注重细节、思维严谨、逻辑性强；3、良好的沟通能力和团队合作精神；\n",
      "    薪资：6-8千\n",
      "    \n"
     ]
    }
   ],
   "source": [
    "from langchain_community.vectorstores import Chroma  # 导入向量数据库\n",
    "from langchain.text_splitter import CharacterTextSplitter  # 文本分割工具\n",
    "\n",
    "def _format_job_text(job_row: pd.Series) -> str:\n",
    "    \"\"\"\n",
    "    将职位信息格式化为文本字符串，用于向量化处理\n",
    "    :param job_row: 包含职位信息的DataFrame行\n",
    "    :return: 格式化后的文本字符串\n",
    "    \"\"\"\n",
    "    return f\"\"\"\n",
    "    公司：{job_row['单位名称']}\n",
    "    职位：{job_row['岗位名称']}\n",
    "    要求：{job_row['岗位要求']}\n",
    "    薪资：{str(job_row['最低薪资（K/月）']) + '-' + str(job_row['最高薪资（K/月）']) + '千'}\n",
    "    \"\"\"\n",
    "\n",
    "# 确保 job_data 已经定义并包含数据\n",
    "print(_format_job_text(job_data.iloc[0]))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\Users\\1\\.conda\\envs\\torch\\lib\\site-packages\\transformers\\models\\bert\\modeling_bert.py:440: UserWarning: 1Torch was not compiled with flash attention. (Triggered internally at C:\\actions-runner\\_work\\pytorch\\pytorch\\builder\\windows\\pytorch\\aten\\src\\ATen\\native\\transformers\\cuda\\sdp_utils.cpp:455.)\n",
      "  attn_output = torch.nn.functional.scaled_dot_product_attention(\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "    公司：深圳市柏威国际科技物流有限公司\n",
      "    职位：涉外法务助理\n",
      "    要求：1、法学相关专业本科以上学历、英语六级，通过法律职业考试、英语口语流利优先；2、工作踏实细致、注重细节、思维严谨、逻辑性强；3、良好的沟通能力和团队合作精神；\n",
      "    薪资：6-8千\n",
      "    \n",
      "单位名称                                           深圳市柏威国际科技物流有限公司\n",
      "岗位名称                                                    涉外法务助理\n",
      "工作性质                                                        全职\n",
      "职位分类                                                      法务助理\n",
      "工作城市                                                       深圳市\n",
      "需求专业                                                        法学\n",
      "学历要求                                                     本科及以上\n",
      "岗位职责         1、负责公司各类合同及法律文件的起草和审核工作；2、代表公司非诉讼法律事务，维护公司合法权益...\n",
      "岗位要求         1、法学相关专业本科以上学历、英语六级，通过法律职业考试、英语口语流利优先；2、工作踏实细致...\n",
      "所需人数                                                         2\n",
      "最低薪资（K/月）                                                    6\n",
      "最高薪资（K/月）                                                    8\n",
      "福利                                                        六险一金\n",
      "职位诱惑                                                       NaN\n",
      "投递说明                                             通过法考、英语口语流利优先\n",
      "职位备注         在这里你可以得到：1、不定期的公司活动聚餐，唱K，下午茶、团队旅游；2、带薪休假，节假日福利...\n",
      "Name: 0, dtype: object\n",
      "1、法学相关专业本科以上学历、英语六级，通过法律职业考试、英语口语流利优先；2、工作踏实细致、注重细节、思维严谨、逻辑性强；3、良好的沟通能力和团队合作精神；\n",
      "深圳市柏威国际科技物流有限公司\n",
      "涉外法务助理\n",
      "6\n"
     ]
    }
   ],
   "source": [
    "\"\"\"\n",
    "创建职位信息的向量数据库\n",
    "将所有职位信息转换为向量形式，用于后续的相似度匹配\n",
    ":return: 返回创建好的向量数据库\n",
    "\"\"\"\n",
    "# 准备数据结构\n",
    "job_texts = []  # 存储所有职位描述文本\n",
    "metadatas = []  # 存储职位的元数据信息\n",
    "\n",
    "# 遍历每个职位记录，转换为文本格式\n",
    "for _, row in job_data.iterrows():\n",
    "    job_text = _format_job_text(row)  # 将职位信息格式化为文本\n",
    "    job_texts.append(job_text)\n",
    "    \n",
    "    # 保存职位的关键信息作为元数据\n",
    "    metadatas.append({\n",
    "        'company': row['单位名称'],  # 公司名称\n",
    "        'position': row['岗位名称'],  # 职位名称\n",
    "        'salary': str(row['最低薪资（K/月）']) + '-' + str(row['最高薪资（K/月）']) + '千',  # 薪资范围\n",
    "        'requirements': row['岗位要求']  # 职位要求\n",
    "    })\n",
    "\n",
    "# 创建向量数据库\n",
    "vectorstore = Chroma.from_texts(\n",
    "    texts=job_texts,  # 职位描述文本列表\n",
    "    embedding=embeddings,  # 使用的嵌入模型\n",
    "    metadatas=metadatas,  # 职位元数据\n",
    "    collection_name=\"jobs\"  # 集合名称\n",
    ")\n",
    "    #return vectorstore\n",
    "\n",
    "print(_format_job_text(job_data.iloc[0]))\n",
    "print(job_data.iloc[0])\n",
    "print(job_data.iloc[0]['岗位要求'])\n",
    "print(job_data.iloc[0]['单位名称'])\n",
    "print(job_data.iloc[0]['岗位名称'])\n",
    "print(job_data.iloc[0]['最低薪资（K/月）'])"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.20"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
